home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Games Machine 76
/
XENIATGM66.iso
/
Indiana Jones
/
Indiana Jones.exe
/
RESOURCE
/
PREVIEW.GOB
/
cog_sol_chaselower.cog
< prev
next >
Wrap
Text File
|
1999-11-15
|
12KB
|
387 lines
# Jones 3D Cog Script
#
# SOL_ChaseLower.cog
#
# Triggered by entering lower oil shed room.
#
# [TRM]
#
# (C) 1999 LucasArts Entertainment Co. All Rights Reserved
# ========================================================================================
symbols
message startup
message user0
message user1
message user2
message user3
message entered
# ** Local Things **
thing player local
thing comCar
thing car local
# ** Ghost Objects **
thing ghost_Com1
thing ghost_Com2
# ** Oil Shed Commies **
thing os_Com1 local
thing os_Com2 local
# ** Cameras **
thing ee_Cam1
thing os_cam1
thing os_cam2
thing os_cam3
thing ec_cam1
# ** Camera Targets **
thing os_CamTarg1
thing os_CamTarg2
thing os_CamTarg3
thing ec_CamTarg1
# ** AI Targets **
thing os_Com1Targ
thing os_Com2Targ
thing os_comTempTarg
# ** explosions **
thing chase_Exp1
thing chase_Exp2
# ** Player Trigger Surfaces **
surface trig_Lower # start cutscene
surface trig_CamCut1
surface trig_CamCut2
surface trig_CamCut3
surface trig_EastEnd1
surface trig_EastEnd2
surface trig_EastEnd3
surface trig_Ready1
surface trig_Ready2
surface trig_Ready3
# ** Templates **
template tpl_Com1=khaki_mauser local
template tpl_Com2=khaki_mauser local
template tpl_Explode=+dummy_bazooka local
# ** music **
sound mus_ComEnt=mus_sol_minechase.wav local
# ** COGs **
cog chaseBlowIt
cog chase1doors
cog chaseUpper
cog hintCog
cog comControl
# ** Ints **
int curCam local
int ready=0 local
int done=0 local
int secondLap=0 local
int ready=0 local
int nextTime=0 local
int blownUp=0 local
end
# ========================================================================================
code
startup:
# hide comCar
SetThingFlags(comCar, 0x80000);
return;
# ========================================================================================
user0:
blownUp = 1;
return;
# ========================================================================================
user1:
done = 0;
return;
# ========================================================================================
user2:
secondLap = 1;
return;
# ========================================================================================
user3:
# message received from sol_ambush.cog
# we just played the ambush scene, so let's go
# around one more time.
Print("chaseLower: nextTime = 1");
nextTime = 1;
return;
# ========================================================================================
entered:
player = GetLocalPlayerThing();
curCam = GetCurrentCamera();
car = GetSourceRef();
if((BitTest(GetPhysicsFlags(car), 0x01000000)) && (blownUp == 0))
{
# need to take one more lap
if((done == 0) && (secondLap == 0) && (ready == 0))
{
if(GetSenderRef() == trig_Lower)
{
Print("chaseLower: secondLap = 1");
secondLap = 1;
# tell chaseUpper that secondLap = 1
SendMessage(chaseUpper, user2);
# turn on switch4 and switch5 commies
SendMessage(comControl, user0);
}
}
else if((done == 0) && (secondLap == 1) && (ready == 0))
{
# approaching from switch3
if((GetSenderRef() == trig_Ready1) && (nextTime == 0))
{
ready = 1;
}
# approaching from switch2
else if(GetSenderRef() == trig_Ready2)
{
ready = 1;
}
# approaching from horus room
else if(GetSenderRef() == trig_Ready3)
{
ready = 1;
nextTime = 0;
# turn on switch4 and switch5 commies
SendMessage(comControl, user0);
}
else if((GetSenderRef() == trig_Lower) && (nextTime == 1))
{
nextTime = 0;
}
}
else if((done == 0) && (secondLap == 1) && (ready == 1) && (nextTime == 0))
{
# cutscene starts from switch3
if(GetSenderRef() == trig_EastEnd1)
{
#Print("chaseLower: trig_EastEnd1");
# disable player
StartCutscene(0);
SetActorFlags(player, 0x200000);
# Cut to ee_Cam1
SetCameraFocus(2, ee_Cam1);
SetCameraSecondaryFocus(2, player);
SetCurrentCamera(2);
# slow down player
SetThingThrust(player, '0.0 2.5 0.0');
}
# cutscene starts from switch2
else if(GetSenderRef() == trig_EastEnd2)
{
#Print("chaseLower: trig_EastEnd2");
# disable player
StartCutscene(1);
SetActorFlags(player, 0x200000);
# Cut to ee_Cam1
SetCameraFocus(2, ee_Cam1);
SetCameraSecondaryFocus(2, player);
SetCurrentCamera(2);
# slow down player
SetThingThrust(player, '0.0 2.5 0.0');
}
# cutscene starts from horus room
else if(GetSenderRef() == trig_EastEnd3)
{
Print("chaseLower: trig_EastEnd3");
# disable player
StartCutscene(1);
SetActorFlags(player, 0x200000);
# Cut to ee_Cam1
SetCameraFocus(2, ee_Cam1);
SetCameraSecondaryFocus(2, player);
SetCurrentCamera(2);
# slow down player
SetThingThrust(player, '0.0 2.5 0.0');
}
# fire up the main cutscene
else if(GetSenderRef() == trig_Lower)
{
#Print("chaseUpper: trig_Upper");
# temporary spot for holding mine doors open
SendMessage(chase1doors, user2);
# enable chaseBlowIt
SendMessage(chaseBlowIt, user1);
# stop player
StopThing(player);
# cut to comcar entering thru Reflec Level 2
SetCameraFocus(2, os_cam1);
SetCameraSecondaryFocus(2, os_CamTarg1);
SetCurrentCamera(2);
# show comCar
ClearThingFlags(comCar, 0x80000);
# create first two oil shed commies
os_Com1 = CreateThing(tpl_Com1, ghost_Com1);
CaptureThing(os_Com1);
os_Com2 = CreateThing(tpl_Com2, ghost_Com2);
CaptureThing(os_Com2);
# prepare oil shed commies for cutscene
AISetCutsceneMode(os_Com1);
AISetCutsceneMode(os_Com2);
# rest for a bit if necessary and then set thrust
Sleep(0.1);
SetThingThrust(comCar, '0.0 2.5 0.0');
# play com entrance music
PlaySoundLocal(mus_ComEnt, 1.0, 0.0, 0x0, 0);
Sleep(1.0);
# send os_com1 running in after comCar
AISetMoveSpeed(os_com1, 4.0);
AISetLookThing(os_com1, os_comTempTarg);
AISetMoveThing(os_com1, os_comTempTarg, 0);
# give player some thurst
SetThingThrust(player, '0.0 2.25 0.0'); # 3
# slow down comCar
SetThingThrust(comCar, '0.0 1.75 0.0'); # 2
# rest for a bit if necessary
Sleep(0.5);
# cut to shot of player on upper
# track and comCar on lower track
SetCameraFocus(2, os_cam2);
SetCameraSecondaryFocus(2, os_CamTarg2);
SetCurrentCamera(2);
# send os_com2 running in after comCar.
AISetMoveSpeed(os_com2, 3.0);
AISetLookThing(os_com2, os_com2Targ);
AISetLookThing(os_com1, os_com1Targ);
AISetMoveThing(os_com1, os_com1Targ, 0);
AISetMoveThing(os_com2, os_comTempTarg, 1);
AISetMoveThing(os_com2, os_com2Targ, 0);
# give player some thurst
SetThingThrust(player, '0.0 3.0 0.0');
}
else if(GetSenderRef() == trig_CamCut1)
{
#Print("ChaseUpper: camCut1");
# cut to camera at base of upper tracks to show
# player and comCar racing towards exit.
SetCameraFocus(2, os_Cam3);
SetCameraSecondaryFocus(2, os_CamTarg3);
SetCurrentCamera(2);
# speed up comCar
SetThingThrust(comCar, '0.0 3.0 0.0');
}
else if(GetSenderRef() == trig_CamCut2)
{
#Print("ChaseUpper: camCut2");
# cut to exit complex camera to show player and
# comCar bursting thru mine doors.
SetCameraFocus(2, ec_Cam1);
SetCameraSecondaryFocus(2, ec_CamTarg1);
SetCurrentCamera(2);
# speed up comCar
SetThingThrust(comCar, '0.0 4.5 0.0'); # 5
}
else if(GetSenderRef() == trig_CamCut3)
{
#Print("ChaseUpper: camCut3");
# cut to merge cam to show comCar zipping in
# front of player.
# slow down comCar
SetThingThrust(comCar, '0.0 3.5 0.0');
# match player speed with comCar
SetThingThrust(player, '0.0 3.5 0.0');
# restore player control
SetCurrentCamera(1);
ClearActorFlags(player, 0x200000);
EndCutscene();
# destroy commies
DestroyThing(os_Com1);
DestroyThing(os_Com2);
# tell hintCog to solve hint10
SendMessage(hintCog, user0);
done = 1;
Sleep(2.0);
CreateThing(tpl_Explode, chase_Exp1);
Sleep(2.0);
CreateThing(tpl_Explode, chase_Exp2);
}
}
}
return;
# ========================================================================================
end